      module mo_nln_matrix
      use shr_kind_mod, only : r8 => shr_kind_r8
      private
      public :: nlnmat
      contains
      subroutine nlnmat01( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(788) = -(rxt(72)*y(2) + rxt(85)*y(19) + rxt(90)*y(20) + rxt(99)*y(21) &
                      + rxt(107)*y(6) + rxt(110)*y(7) + rxt(143)*y(51) + rxt(167) &
                      *y(62) + rxt(189)*y(82) + rxt(195)*y(83) + rxt(213)*y(79) &
                      + rxt(245)*y(92) + rxt(270)*y(25) + rxt(296)*y(34))
         mat(917) = -rxt(72)*y(1)
         mat(428) = -rxt(85)*y(1)
         mat(1071) = -rxt(90)*y(1)
         mat(895) = -rxt(99)*y(1)
         mat(835) = -rxt(107)*y(1)
         mat(967) = -rxt(110)*y(1)
         mat(127) = -rxt(143)*y(1)
         mat(454) = -rxt(167)*y(1)
         mat(570) = -rxt(189)*y(1)
         mat(523) = -rxt(195)*y(1)
         mat(388) = -rxt(213)*y(1)
         mat(285) = -rxt(245)*y(1)
         mat(1090) = -rxt(270)*y(1)
         mat(530) = -rxt(296)*y(1)
         mat(788) = mat(788) + .100_r8*rxt(213)*y(79) + .200_r8*rxt(189)*y(82) &
                      + .200_r8*rxt(195)*y(83)
         mat(895) = mat(895) + .250_r8*rxt(154)*y(60) + .250_r8*rxt(205)*y(86)
         mat(649) = .250_r8*rxt(154)*y(21)
         mat(388) = mat(388) + .100_r8*rxt(213)*y(1)
         mat(570) = mat(570) + .200_r8*rxt(189)*y(1)
         mat(523) = mat(523) + .200_r8*rxt(195)*y(1)
         mat(625) = .250_r8*rxt(205)*y(21)
         mat(920) = -(rxt(72)*y(1) + 4._r8*rxt(73)*y(2) + rxt(89)*y(20) + rxt(98) &
                      *y(21) + rxt(101)*y(22) + rxt(105)*y(6) + (rxt(108) + rxt(109) &
                      ) * y(7) + rxt(116)*y(8) + rxt(128)*y(16) + rxt(277)*y(27) &
                      + rxt(289)*y(30) + rxt(290)*y(31) + rxt(293)*y(32) + rxt(299) &
                      *y(35) + rxt(309)*y(36) + rxt(310)*y(37) + rxt(311)*y(38))
         mat(791) = -rxt(72)*y(2)
         mat(1074) = -rxt(89)*y(2)
         mat(898) = -rxt(98)*y(2)
         mat(292) = -rxt(101)*y(2)
         mat(838) = -rxt(105)*y(2)
         mat(970) = -(rxt(108) + rxt(109)) * y(2)
         mat(737) = -rxt(116)*y(2)
         mat(1111) = -rxt(128)*y(2)
         mat(755) = -rxt(277)*y(2)
         mat(701) = -rxt(289)*y(2)
         mat(423) = -rxt(290)*y(2)
         mat(440) = -rxt(293)*y(2)
         mat(939) = -rxt(299)*y(2)
         mat(232) = -rxt(309)*y(2)
         mat(373) = -rxt(310)*y(2)
         mat(256) = -rxt(311)*y(2)
         mat(73) = rxt(103)*y(6) + rxt(104)*y(7)
         mat(838) = mat(838) + rxt(103)*y(5)
         mat(970) = mat(970) + rxt(104)*y(5)
         mat(1074) = mat(1074) + 2.000_r8*rxt(92)*y(20)
         mat(430) = rxt(88)*y(21)
         mat(898) = mat(898) + rxt(88)*y(19)
         mat(348) = -(rxt(76)*y(49) + rxt(83)*y(129))
         mat(977) = -rxt(76)*y(3)
         mat(76) = -rxt(83)*y(3)
         mat(71) = -(rxt(103)*y(6) + rxt(104)*y(7))
         mat(799) = -rxt(103)*y(5)
         mat(947) = -rxt(104)*y(5)
         mat(836) = -(rxt(103)*y(5) + rxt(105)*y(2) + rxt(106)*y(21) + rxt(107)*y(1) &
                      + rxt(115)*y(8) + rxt(123)*y(13) + rxt(138)*y(133) + rxt(145) &
                      *y(57) + rxt(152)*y(60) + rxt(158)*y(53) + rxt(169)*y(64) &
                      + rxt(174)*y(66) + rxt(178)*y(69) + rxt(187)*y(72) + rxt(191) &
                      *y(74) + (rxt(196) + rxt(197)) * y(84) + rxt(203)*y(86) + rxt(215) &
                      *y(80) + rxt(221)*y(105) + rxt(228)*y(77) + rxt(231)*y(90) &
                      + rxt(239)*y(97) + rxt(247)*y(93) + rxt(281)*y(27) + rxt(302) &
                      *y(35))
         mat(72) = -rxt(103)*y(6)
         mat(918) = -rxt(105)*y(6)
         mat(896) = -rxt(106)*y(6)
         mat(789) = -rxt(107)*y(6)
         mat(735) = -rxt(115)*y(6)
         mat(681) = -rxt(123)*y(6)
         mat(200) = -rxt(138)*y(6)
         mat(336) = -rxt(145)*y(6)
         mat(650) = -rxt(152)*y(6)
         mat(149) = -rxt(158)*y(6)
         mat(400) = -rxt(169)*y(6)
         mat(363) = -rxt(174)*y(6)
         mat(477) = -rxt(178)*y(6)
         mat(106) = -rxt(187)*y(6)
         mat(311) = -rxt(191)*y(6)
         mat(589) = -(rxt(196) + rxt(197)) * y(6)
         mat(626) = -rxt(203)*y(6)
         mat(610) = -rxt(215)*y(6)
         mat(490) = -rxt(221)*y(6)
         mat(325) = -rxt(228)*y(6)
         mat(555) = -rxt(231)*y(6)
         mat(226) = -rxt(239)*y(6)
         mat(506) = -rxt(247)*y(6)
         mat(753) = -rxt(281)*y(6)
         mat(937) = -rxt(302)*y(6)
         mat(918) = mat(918) + rxt(108)*y(7)
         mat(968) = rxt(108)*y(2)
         mat(972) = -(rxt(104)*y(5) + (rxt(108) + rxt(109)) * y(2) + rxt(110)*y(1) &
                      + rxt(111)*y(8) + rxt(113)*y(20) + rxt(119)*y(21) + rxt(153) &
                      *y(60) + rxt(209)*y(86) + rxt(243)*y(99) + rxt(282)*y(27) &
                      + rxt(303)*y(35))
         mat(74) = -rxt(104)*y(7)
         mat(922) = -(rxt(108) + rxt(109)) * y(7)
         mat(793) = -rxt(110)*y(7)
         mat(738) = -rxt(111)*y(7)
         mat(1076) = -rxt(113)*y(7)
         mat(900) = -rxt(119)*y(7)
         mat(652) = -rxt(153)*y(7)
         mat(628) = -rxt(209)*y(7)
         mat(70) = -rxt(243)*y(7)
         mat(757) = -rxt(282)*y(7)
         mat(941) = -rxt(303)*y(7)
         mat(793) = mat(793) + rxt(107)*y(6)
         mat(922) = mat(922) + rxt(105)*y(6) + rxt(116)*y(8)
         mat(840) = rxt(107)*y(1) + rxt(105)*y(2) + 2.000_r8*rxt(115)*y(8) + rxt(123) &
                      *y(13) + rxt(106)*y(21) + rxt(281)*y(27) + rxt(302)*y(35) &
                      + rxt(158)*y(53) + rxt(145)*y(57) + rxt(152)*y(60) + rxt(169) &
                      *y(64) + rxt(174)*y(66) + rxt(178)*y(69) + rxt(187)*y(72) &
                      + .900_r8*rxt(228)*y(77) + rxt(191)*y(74) + .920_r8*rxt(215) &
                      *y(80) + rxt(196)*y(84) + rxt(203)*y(86) + rxt(231)*y(90) &
                      + rxt(247)*y(93) + .900_r8*rxt(239)*y(97) + 1.206_r8*rxt(221) &
                      *y(105) + rxt(138)*y(133)
         mat(972) = mat(972) + .700_r8*rxt(243)*y(99)
         mat(1076) = mat(1076) + rxt(117)*y(8) + rxt(120)*y(10) + rxt(185)*y(103) &
                      + .400_r8*rxt(225)*y(106)
         mat(738) = mat(738) + rxt(116)*y(2) + 2.000_r8*rxt(115)*y(6) + rxt(117)*y(20) &
                      + rxt(118)*y(21) + rxt(216)*y(80) + rxt(198)*y(84) + rxt(204) &
                      *y(86) + rxt(232)*y(90) + rxt(246)*y(92) + 1.206_r8*rxt(222) &
                      *y(105) + rxt(226)*y(106)
         mat(170) = rxt(120)*y(20)
         mat(684) = rxt(123)*y(6)
         mat(900) = mat(900) + rxt(106)*y(6) + rxt(118)*y(8) + .206_r8*rxt(223)*y(105)
         mat(757) = mat(757) + rxt(281)*y(6)
         mat(941) = mat(941) + rxt(302)*y(6)
         mat(151) = rxt(158)*y(6)
         mat(338) = rxt(145)*y(6)
         mat(652) = mat(652) + rxt(152)*y(6)
         mat(402) = rxt(169)*y(6)
         mat(365) = rxt(174)*y(6)
         mat(479) = rxt(178)*y(6)
         mat(108) = rxt(187)*y(6)
         mat(327) = .900_r8*rxt(228)*y(6)
         mat(313) = rxt(191)*y(6)
         mat(612) = .920_r8*rxt(215)*y(6) + rxt(216)*y(8)
         mat(591) = rxt(196)*y(6) + rxt(198)*y(8)
         mat(628) = mat(628) + rxt(203)*y(6) + rxt(204)*y(8)
         mat(557) = rxt(231)*y(6) + rxt(232)*y(8)
         mat(287) = rxt(246)*y(8)
         mat(508) = rxt(247)*y(6)
         mat(228) = .900_r8*rxt(239)*y(6)
         mat(70) = mat(70) + .700_r8*rxt(243)*y(7)
         mat(161) = rxt(185)*y(20)
         mat(492) = 1.206_r8*rxt(221)*y(6) + 1.206_r8*rxt(222)*y(8) + .206_r8*rxt(223) &
                      *y(21)
         mat(416) = .400_r8*rxt(225)*y(20) + rxt(226)*y(8)
         mat(202) = rxt(138)*y(6)
         mat(1078) = -(rxt(89)*y(2) + rxt(90)*y(1) + rxt(91)*y(21) + (4._r8*rxt(92) &
                      + 4._r8*rxt(93)) * y(20) + rxt(95)*y(22) + rxt(96)*y(129) + rxt(97) &
                      *y(130) + rxt(113)*y(7) + rxt(114)*y(9) + rxt(117)*y(8) + rxt(120) &
                      *y(10) + (rxt(125) + rxt(134)) * y(14) + rxt(127)*y(16) + rxt(133) &
                      *y(15) + rxt(135)*y(132) + rxt(140)*y(131) + rxt(141)*y(56) &
                      + rxt(142)*y(51) + rxt(144)*y(54) + rxt(149)*y(58) + rxt(150) &
                      *y(59) + rxt(157)*y(61) + rxt(161)*y(55) + rxt(162)*y(101) &
                      + rxt(163)*y(50) + rxt(165)*y(102) + rxt(166)*y(62) + rxt(172) &
                      *y(65) + rxt(173)*y(63) + rxt(176)*y(67) + rxt(177)*y(68) &
                      + rxt(181)*y(70) + rxt(182)*y(88) + rxt(183)*y(89) + rxt(185) &
                      *y(103) + rxt(186)*y(71) + rxt(188)*y(82) + rxt(190)*y(73) &
                      + rxt(193)*y(75) + rxt(194)*y(83) + rxt(202)*y(85) + rxt(211) &
                      *y(104) + rxt(212)*y(79) + rxt(218)*y(81) + rxt(224)*y(76) &
                      + rxt(225)*y(106) + rxt(227)*y(87) + rxt(230)*y(78) + rxt(236) &
                      *y(91) + rxt(238)*y(95) + rxt(241)*y(98) + rxt(242)*y(96) &
                      + rxt(244)*y(92) + rxt(249)*y(94) + rxt(255)*y(112) + (rxt(256) &
                      + rxt(257)) * y(113) + rxt(259)*y(115) + (rxt(278) + rxt(279) &
                      ) * y(27) + rxt(288)*y(30) + rxt(292)*y(31) + rxt(294)*y(32) &
                      + rxt(300)*y(35) + rxt(308)*y(36))
         mat(924) = -rxt(89)*y(20)
         mat(795) = -rxt(90)*y(20)
         mat(902) = -rxt(91)*y(20)
         mat(294) = -rxt(95)*y(20)
         mat(78) = -rxt(96)*y(20)
         mat(33) = -rxt(97)*y(20)
         mat(974) = -rxt(113)*y(20)
         mat(410) = -rxt(114)*y(20)
         mat(740) = -rxt(117)*y(20)
         mat(172) = -rxt(120)*y(20)
         mat(177) = -(rxt(125) + rxt(134)) * y(20)
         mat(1115) = -rxt(127)*y(20)
         mat(269) = -rxt(133)*y(20)
         mat(166) = -rxt(135)*y(20)
         mat(60) = -rxt(140)*y(20)
         mat(37) = -rxt(141)*y(20)
         mat(129) = -rxt(142)*y(20)
         mat(279) = -rxt(144)*y(20)
         mat(102) = -rxt(149)*y(20)
         mat(469) = -rxt(150)*y(20)
         mat(210) = -rxt(157)*y(20)
         mat(274) = -rxt(161)*y(20)
         mat(219) = -rxt(162)*y(20)
         mat(91) = -rxt(163)*y(20)
         mat(196) = -rxt(165)*y(20)
         mat(459) = -rxt(166)*y(20)
         mat(139) = -rxt(172)*y(20)
         mat(41) = -rxt(173)*y(20)
         mat(241) = -rxt(176)*y(20)
         mat(346) = -rxt(177)*y(20)
         mat(144) = -rxt(181)*y(20)
         mat(516) = -rxt(182)*y(20)
         mat(544) = -rxt(183)*y(20)
         mat(162) = -rxt(185)*y(20)
         mat(24) = -rxt(186)*y(20)
         mat(575) = -rxt(188)*y(20)
         mat(183) = -rxt(190)*y(20)
         mat(114) = -rxt(193)*y(20)
         mat(526) = -rxt(194)*y(20)
         mat(119) = -rxt(202)*y(20)
         mat(265) = -rxt(211)*y(20)
         mat(391) = -rxt(212)*y(20)
         mat(249) = -rxt(218)*y(20)
         mat(27) = -rxt(224)*y(20)
         mat(417) = -rxt(225)*y(20)
         mat(133) = -rxt(227)*y(20)
         mat(305) = -rxt(230)*y(20)
         mat(123) = -rxt(236)*y(20)
         mat(49) = -rxt(238)*y(20)
         mat(158) = -rxt(241)*y(20)
         mat(52) = -rxt(242)*y(20)
         mat(288) = -rxt(244)*y(20)
         mat(190) = -rxt(249)*y(20)
         mat(44) = -rxt(255)*y(20)
         mat(87) = -(rxt(256) + rxt(257)) * y(20)
         mat(30) = -rxt(259)*y(20)
         mat(759) = -(rxt(278) + rxt(279)) * y(20)
         mat(705) = -rxt(288)*y(20)
         mat(425) = -rxt(292)*y(20)
         mat(443) = -rxt(294)*y(20)
         mat(943) = -rxt(300)*y(20)
         mat(234) = -rxt(308)*y(20)
         mat(795) = mat(795) + rxt(85)*y(19) + rxt(99)*y(21) + .120_r8*rxt(143)*y(51) &
                      + .330_r8*rxt(167)*y(62) + .270_r8*rxt(213)*y(79) &
                      + .080_r8*rxt(189)*y(82) + .215_r8*rxt(195)*y(83) &
                      + .700_r8*rxt(245)*y(92)
         mat(924) = mat(924) + rxt(128)*y(16) + rxt(98)*y(21) + rxt(101)*y(22) &
                      + rxt(289)*y(30) + rxt(290)*y(31) + rxt(309)*y(36) + rxt(310) &
                      *y(37)
         mat(356) = rxt(83)*y(129) + 2.000_r8*rxt(76)*y(49)
         mat(842) = rxt(106)*y(21)
         mat(1078) = mat(1078) + .300_r8*rxt(134)*y(14) + .500_r8*rxt(149)*y(58) &
                      + .500_r8*rxt(176)*y(67) + .100_r8*rxt(202)*y(85) &
                      + .650_r8*rxt(140)*y(131)
         mat(740) = mat(740) + rxt(118)*y(21)
         mat(177) = mat(177) + .300_r8*rxt(134)*y(20)
         mat(78) = mat(78) + rxt(83)*y(3)
         mat(1115) = mat(1115) + rxt(128)*y(2)
         mat(432) = rxt(85)*y(1) + 2.000_r8*rxt(86)*y(21)
         mat(902) = mat(902) + rxt(99)*y(1) + rxt(98)*y(2) + rxt(106)*y(6) + rxt(118) &
                      *y(8) + 2.000_r8*rxt(86)*y(19) + rxt(274)*y(25)
         mat(294) = mat(294) + rxt(101)*y(2)
         mat(989) = 2.000_r8*rxt(76)*y(3)
         mat(1097) = rxt(274)*y(21)
         mat(705) = mat(705) + rxt(289)*y(2)
         mat(425) = mat(425) + rxt(290)*y(2)
         mat(234) = mat(234) + rxt(309)*y(2)
         mat(376) = rxt(310)*y(2)
         mat(129) = mat(129) + .120_r8*rxt(143)*y(1)
         mat(102) = mat(102) + .500_r8*rxt(149)*y(20)
         mat(459) = mat(459) + .330_r8*rxt(167)*y(1)
         mat(241) = mat(241) + .500_r8*rxt(176)*y(20)
         mat(391) = mat(391) + .270_r8*rxt(213)*y(1)
         mat(575) = mat(575) + .080_r8*rxt(189)*y(1)
         mat(526) = mat(526) + .215_r8*rxt(195)*y(1)
         mat(119) = mat(119) + .100_r8*rxt(202)*y(20)
         mat(288) = mat(288) + .700_r8*rxt(245)*y(1)
         mat(60) = mat(60) + .650_r8*rxt(140)*y(20)
      end subroutine nlnmat01
      subroutine nlnmat02( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(733) = -(rxt(111)*y(7) + rxt(115)*y(6) + rxt(116)*y(2) + rxt(117)*y(20) &
                      + rxt(118)*y(21) + rxt(126)*y(16) + rxt(151)*y(59) + rxt(168) &
                      *y(62) + rxt(184)*y(89) + rxt(198)*y(84) + rxt(204)*y(86) &
                      + rxt(214)*y(79) + rxt(216)*y(80) + rxt(222)*y(105) + rxt(226) &
                      *y(106) + rxt(232)*y(90) + rxt(246)*y(92) + rxt(258)*y(113))
         mat(965) = -rxt(111)*y(8)
         mat(833) = -rxt(115)*y(8)
         mat(915) = -rxt(116)*y(8)
         mat(1069) = -rxt(117)*y(8)
         mat(893) = -rxt(118)*y(8)
         mat(1106) = -rxt(126)*y(8)
         mat(465) = -rxt(151)*y(8)
         mat(453) = -rxt(168)*y(8)
         mat(540) = -rxt(184)*y(8)
         mat(588) = -rxt(198)*y(8)
         mat(624) = -rxt(204)*y(8)
         mat(387) = -rxt(214)*y(8)
         mat(608) = -rxt(216)*y(8)
         mat(489) = -rxt(222)*y(8)
         mat(414) = -rxt(226)*y(8)
         mat(554) = -rxt(232)*y(8)
         mat(284) = -rxt(246)*y(8)
         mat(85) = -rxt(258)*y(8)
         mat(786) = rxt(110)*y(7)
         mat(915) = mat(915) + rxt(109)*y(7) + rxt(293)*y(32) + rxt(311)*y(38)
         mat(965) = mat(965) + rxt(110)*y(1) + rxt(109)*y(2)
         mat(1069) = mat(1069) + rxt(114)*y(9) + rxt(294)*y(32) + rxt(165)*y(102) &
                      + .500_r8*rxt(211)*y(104)
         mat(407) = rxt(114)*y(20)
         mat(1088) = rxt(295)*y(32)
         mat(438) = rxt(293)*y(2) + rxt(294)*y(20) + rxt(295)*y(25)
         mat(255) = rxt(311)*y(2)
         mat(194) = rxt(165)*y(20)
         mat(262) = .500_r8*rxt(211)*y(20)
         mat(406) = -(rxt(114)*y(20))
         mat(1047) = -rxt(114)*y(9)
         mat(956) = rxt(113)*y(20)
         mat(1047) = mat(1047) + rxt(113)*y(7)
         mat(717) = rxt(126)*y(16) + rxt(151)*y(59) + rxt(184)*y(89) + rxt(258)*y(113)
         mat(1102) = rxt(126)*y(8)
         mat(691) = (rxt(320)+rxt(325)+rxt(331))*y(32)
         mat(434) = (rxt(320)+rxt(325)+rxt(331))*y(30)
         mat(461) = rxt(151)*y(8)
         mat(537) = rxt(184)*y(8)
         mat(84) = rxt(258)*y(8)
         mat(167) = -(rxt(120)*y(20))
         mat(1020) = -rxt(120)*y(10)
         mat(949) = rxt(119)*y(21)
         mat(853) = rxt(119)*y(7)
         mat(948) = rxt(111)*y(8)
         mat(710) = rxt(111)*y(7)
         mat(678) = -(rxt(123)*y(6) + rxt(124)*y(21) + (4._r8*rxt(131) + 4._r8*rxt(132) &
                      ) * y(13) + rxt(147)*y(57) + rxt(155)*y(60) + rxt(171)*y(64) &
                      + rxt(180)*y(69) + rxt(200)*y(84) + rxt(206)*y(86) + rxt(219) &
                      *y(80) + rxt(234)*y(90))
         mat(832) = -rxt(123)*y(13)
         mat(891) = -rxt(124)*y(13)
         mat(335) = -rxt(147)*y(13)
         mat(647) = -rxt(155)*y(13)
         mat(399) = -rxt(171)*y(13)
         mat(476) = -rxt(180)*y(13)
         mat(587) = -rxt(200)*y(13)
         mat(623) = -rxt(206)*y(13)
         mat(607) = -rxt(219)*y(13)
         mat(553) = -rxt(234)*y(13)
         mat(785) = .310_r8*rxt(167)*y(62)
         mat(832) = mat(832) + rxt(152)*y(60)
         mat(1067) = (rxt(125)+.700_r8*rxt(134))*y(14) + rxt(144)*y(54)
         mat(678) = mat(678) + .900_r8*rxt(155)*y(60)
         mat(175) = (rxt(125)+.700_r8*rxt(134))*y(20)
         mat(277) = rxt(144)*y(20)
         mat(647) = mat(647) + rxt(152)*y(6) + .900_r8*rxt(155)*y(13) &
                      + 4.000_r8*rxt(156)*y(60) + rxt(220)*y(80) + rxt(201)*y(84) &
                      + rxt(207)*y(86) + rxt(235)*y(90)
         mat(452) = .310_r8*rxt(167)*y(1)
         mat(607) = mat(607) + rxt(220)*y(60)
         mat(587) = mat(587) + rxt(201)*y(60)
         mat(623) = mat(623) + rxt(207)*y(60)
         mat(553) = mat(553) + rxt(235)*y(60)
         mat(173) = -((rxt(125) + rxt(134)) * y(20))
         mat(1021) = -(rxt(125) + rxt(134)) * y(14)
         mat(658) = rxt(124)*y(21)
         mat(854) = rxt(124)*y(13)
         mat(75) = -(rxt(83)*y(3) + rxt(96)*y(20))
         mat(347) = -rxt(83)*y(129)
         mat(1004) = -rxt(96)*y(129)
         mat(31) = -(rxt(97)*y(20))
         mat(996) = -rxt(97)*y(130)
         mat(1117) = -(rxt(126)*y(8) + rxt(127)*y(20) + rxt(128)*y(2) + rxt(136)*y(21) &
                      + rxt(275)*y(25) + rxt(298)*y(34))
         mat(741) = -rxt(126)*y(16)
         mat(1080) = -rxt(127)*y(16)
         mat(926) = -rxt(128)*y(16)
         mat(904) = -rxt(136)*y(16)
         mat(1099) = -rxt(275)*y(16)
         mat(536) = -rxt(298)*y(16)
         mat(797) = rxt(143)*y(51) + .540_r8*rxt(167)*y(62) + .600_r8*rxt(213)*y(79) &
                      + .800_r8*rxt(189)*y(82) + .700_r8*rxt(195)*y(83)
         mat(844) = rxt(123)*y(13) + rxt(174)*y(66) + rxt(178)*y(69) &
                      + .500_r8*rxt(187)*y(72) + .100_r8*rxt(228)*y(77) &
                      + .510_r8*rxt(215)*y(80) + .250_r8*rxt(196)*y(84) + rxt(203) &
                      *y(86) + .072_r8*rxt(221)*y(105)
         mat(1080) = mat(1080) + .300_r8*rxt(134)*y(14) + rxt(133)*y(15) &
                      + .500_r8*rxt(142)*y(51) + .800_r8*rxt(161)*y(55) &
                      + .500_r8*rxt(157)*y(61) + rxt(165)*y(102) + .500_r8*rxt(211) &
                      *y(104)
         mat(741) = mat(741) + .600_r8*rxt(216)*y(80) + .250_r8*rxt(198)*y(84) &
                      + rxt(204)*y(86) + .072_r8*rxt(222)*y(105)
         mat(687) = rxt(123)*y(6) + (4.000_r8*rxt(131)+2.000_r8*rxt(132))*y(13) &
                      + .700_r8*rxt(147)*y(57) + rxt(155)*y(60) + rxt(171)*y(64) &
                      + .800_r8*rxt(180)*y(69) + 1.200_r8*rxt(219)*y(80) &
                      + .880_r8*rxt(200)*y(84) + 2.000_r8*rxt(206)*y(86) &
                      + .700_r8*rxt(234)*y(90)
         mat(178) = .300_r8*rxt(134)*y(20)
         mat(904) = mat(904) + .008_r8*rxt(223)*y(105)
         mat(270) = rxt(133)*y(20)
         mat(130) = rxt(143)*y(1) + .500_r8*rxt(142)*y(20)
         mat(275) = .800_r8*rxt(161)*y(20)
         mat(340) = .700_r8*rxt(147)*y(13)
         mat(655) = rxt(155)*y(13) + .600_r8*rxt(220)*y(80) + .250_r8*rxt(201)*y(84) &
                      + rxt(207)*y(86)
         mat(211) = .500_r8*rxt(157)*y(20)
         mat(460) = .540_r8*rxt(167)*y(1)
         mat(405) = rxt(171)*y(13)
         mat(368) = rxt(174)*y(6)
         mat(482) = rxt(178)*y(6) + .800_r8*rxt(180)*y(13)
         mat(109) = .500_r8*rxt(187)*y(6)
         mat(329) = .100_r8*rxt(228)*y(6)
         mat(392) = .600_r8*rxt(213)*y(1)
         mat(615) = .510_r8*rxt(215)*y(6) + .600_r8*rxt(216)*y(8) + 1.200_r8*rxt(219) &
                      *y(13) + .600_r8*rxt(220)*y(60)
         mat(576) = .800_r8*rxt(189)*y(1)
         mat(527) = .700_r8*rxt(195)*y(1)
         mat(594) = .250_r8*rxt(196)*y(6) + .250_r8*rxt(198)*y(8) + .880_r8*rxt(200) &
                      *y(13) + .250_r8*rxt(201)*y(60)
         mat(631) = rxt(203)*y(6) + rxt(204)*y(8) + 2.000_r8*rxt(206)*y(13) + rxt(207) &
                      *y(60) + 4.000_r8*rxt(208)*y(86)
         mat(560) = .700_r8*rxt(234)*y(13)
         mat(197) = rxt(165)*y(20)
         mat(266) = .500_r8*rxt(211)*y(20)
         mat(495) = .072_r8*rxt(221)*y(6) + .072_r8*rxt(222)*y(8) + .008_r8*rxt(223) &
                      *y(21)
         mat(427) = -(rxt(85)*y(1) + (rxt(86) + rxt(87) + rxt(88)) * y(21))
         mat(770) = -rxt(85)*y(19)
         mat(876) = -(rxt(86) + rxt(87) + rxt(88)) * y(19)
         mat(911) = rxt(89)*y(20)
         mat(1050) = rxt(89)*y(2) + rxt(127)*y(16)
         mat(1103) = rxt(127)*y(20)
         mat(897) = -((rxt(86) + rxt(87) + rxt(88)) * y(19) + rxt(91)*y(20) + rxt(98) &
                      *y(2) + rxt(99)*y(1) + 4._r8*rxt(100)*y(21) + rxt(106)*y(6) &
                      + rxt(118)*y(8) + rxt(119)*y(7) + rxt(124)*y(13) + rxt(136) &
                      *y(16) + rxt(139)*y(133) + rxt(146)*y(57) + rxt(154)*y(60) &
                      + rxt(170)*y(64) + rxt(175)*y(66) + rxt(179)*y(69) + rxt(192) &
                      *y(74) + rxt(199)*y(84) + rxt(205)*y(86) + rxt(217)*y(80) &
                      + rxt(223)*y(105) + rxt(229)*y(77) + rxt(233)*y(90) + rxt(240) &
                      *y(97) + rxt(248)*y(93) + (rxt(273) + rxt(274)) * y(25) + rxt(280) &
                      *y(27) + rxt(297)*y(34) + rxt(301)*y(35))
         mat(429) = -(rxt(86) + rxt(87) + rxt(88)) * y(21)
         mat(1073) = -rxt(91)*y(21)
         mat(919) = -rxt(98)*y(21)
         mat(790) = -rxt(99)*y(21)
         mat(837) = -rxt(106)*y(21)
         mat(736) = -rxt(118)*y(21)
         mat(969) = -rxt(119)*y(21)
         mat(682) = -rxt(124)*y(21)
         mat(1110) = -rxt(136)*y(21)
         mat(201) = -rxt(139)*y(21)
         mat(337) = -rxt(146)*y(21)
         mat(651) = -rxt(154)*y(21)
         mat(401) = -rxt(170)*y(21)
         mat(364) = -rxt(175)*y(21)
         mat(478) = -rxt(179)*y(21)
         mat(312) = -rxt(192)*y(21)
         mat(590) = -rxt(199)*y(21)
         mat(627) = -rxt(205)*y(21)
         mat(611) = -rxt(217)*y(21)
         mat(491) = -rxt(223)*y(21)
         mat(326) = -rxt(229)*y(21)
         mat(556) = -rxt(233)*y(21)
         mat(227) = -rxt(240)*y(21)
         mat(507) = -rxt(248)*y(21)
         mat(1092) = -(rxt(273) + rxt(274)) * y(21)
         mat(754) = -rxt(280)*y(21)
         mat(531) = -rxt(297)*y(21)
         mat(938) = -rxt(301)*y(21)
         mat(790) = mat(790) + rxt(90)*y(20) + .120_r8*rxt(143)*y(51) &
                      + .190_r8*rxt(167)*y(62) + .060_r8*rxt(213)*y(79) &
                      + .060_r8*rxt(189)*y(82) + .275_r8*rxt(195)*y(83) + rxt(245) &
                      *y(92)
         mat(919) = mat(919) + rxt(128)*y(16) + rxt(101)*y(22)
         mat(837) = mat(837) + rxt(123)*y(13) + rxt(145)*y(57) + rxt(169)*y(64) &
                      + rxt(174)*y(66) + rxt(187)*y(72) + .900_r8*rxt(228)*y(77) &
                      + rxt(215)*y(80) + .470_r8*rxt(196)*y(84) + rxt(231)*y(90) &
                      + rxt(247)*y(93) + .900_r8*rxt(239)*y(97) + .794_r8*rxt(221) &
                      *y(105) + rxt(138)*y(133)
         mat(969) = mat(969) + .700_r8*rxt(243)*y(99)
         mat(1073) = mat(1073) + rxt(90)*y(1) + rxt(117)*y(8) + rxt(96)*y(129) &
                      + rxt(97)*y(130) + rxt(95)*y(22) + rxt(278)*y(27) + rxt(300) &
                      *y(35) + rxt(133)*y(15) + rxt(163)*y(50) + .250_r8*rxt(142) &
                      *y(51) + rxt(161)*y(55) + .200_r8*rxt(202)*y(85) + rxt(182) &
                      *y(88) + .250_r8*rxt(238)*y(95) + rxt(162)*y(101) &
                      + .500_r8*rxt(211)*y(104) + rxt(225)*y(106) + .500_r8*rxt(257) &
                      *y(113) + .350_r8*rxt(140)*y(131) + rxt(135)*y(132)
         mat(736) = mat(736) + rxt(117)*y(20) + rxt(126)*y(16) + rxt(216)*y(80) &
                      + .470_r8*rxt(198)*y(84) + rxt(232)*y(90) + .794_r8*rxt(222) &
                      *y(105) + rxt(226)*y(106)
         mat(682) = mat(682) + rxt(123)*y(6) + 4.000_r8*rxt(131)*y(13) + rxt(147) &
                      *y(57) + .900_r8*rxt(155)*y(60) + rxt(171)*y(64) &
                      + .300_r8*rxt(180)*y(69) + rxt(219)*y(80) + .730_r8*rxt(200) &
                      *y(84) + rxt(206)*y(86) + .800_r8*rxt(234)*y(90)
         mat(77) = rxt(96)*y(20)
         mat(32) = rxt(97)*y(20)
         mat(1110) = mat(1110) + rxt(128)*y(2) + rxt(126)*y(8) + rxt(275)*y(25) &
                      + rxt(298)*y(34)
         mat(897) = mat(897) + .794_r8*rxt(223)*y(105)
         mat(291) = rxt(101)*y(2) + rxt(95)*y(20) + rxt(272)*y(25)
         mat(1092) = mat(1092) + rxt(275)*y(16) + rxt(272)*y(22)
         mat(754) = mat(754) + rxt(278)*y(20)
         mat(531) = mat(531) + rxt(298)*y(16)
         mat(938) = mat(938) + rxt(300)*y(20)
         mat(268) = rxt(133)*y(20)
         mat(90) = rxt(163)*y(20)
         mat(128) = .120_r8*rxt(143)*y(1) + .250_r8*rxt(142)*y(20)
         mat(273) = rxt(161)*y(20)
         mat(337) = mat(337) + rxt(145)*y(6) + rxt(147)*y(13) + 2.400_r8*rxt(148) &
                      *y(57)
         mat(651) = mat(651) + .900_r8*rxt(155)*y(13) + rxt(220)*y(80) &
                      + .470_r8*rxt(201)*y(84) + rxt(235)*y(90)
         mat(456) = .190_r8*rxt(167)*y(1)
         mat(401) = mat(401) + rxt(169)*y(6) + rxt(171)*y(13)
         mat(364) = mat(364) + rxt(174)*y(6)
         mat(478) = mat(478) + .300_r8*rxt(180)*y(13)
         mat(107) = rxt(187)*y(6)
         mat(326) = mat(326) + .900_r8*rxt(228)*y(6)
         mat(389) = .060_r8*rxt(213)*y(1)
         mat(611) = mat(611) + rxt(215)*y(6) + rxt(216)*y(8) + rxt(219)*y(13) &
                      + rxt(220)*y(60)
         mat(572) = .060_r8*rxt(189)*y(1)
         mat(524) = .275_r8*rxt(195)*y(1)
         mat(590) = mat(590) + .470_r8*rxt(196)*y(6) + .470_r8*rxt(198)*y(8) &
                      + .730_r8*rxt(200)*y(13) + .470_r8*rxt(201)*y(60)
         mat(118) = .200_r8*rxt(202)*y(20)
         mat(627) = mat(627) + rxt(206)*y(13)
         mat(515) = rxt(182)*y(20)
         mat(556) = mat(556) + rxt(231)*y(6) + rxt(232)*y(8) + .800_r8*rxt(234)*y(13) &
                      + rxt(235)*y(60)
         mat(286) = rxt(245)*y(1)
         mat(507) = mat(507) + rxt(247)*y(6)
         mat(48) = .250_r8*rxt(238)*y(20)
         mat(227) = mat(227) + .900_r8*rxt(239)*y(6)
         mat(69) = .700_r8*rxt(243)*y(7)
         mat(218) = rxt(162)*y(20)
         mat(263) = .500_r8*rxt(211)*y(20)
         mat(491) = mat(491) + .794_r8*rxt(221)*y(6) + .794_r8*rxt(222)*y(8) &
                      + .794_r8*rxt(223)*y(21)
         mat(415) = rxt(225)*y(20) + rxt(226)*y(8)
         mat(86) = .500_r8*rxt(257)*y(20)
         mat(59) = .350_r8*rxt(140)*y(20)
         mat(164) = rxt(135)*y(20)
         mat(201) = mat(201) + rxt(138)*y(6)
      end subroutine nlnmat02
      subroutine nlnmat03( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(289) = -(rxt(95)*y(20) + rxt(101)*y(2) + rxt(272)*y(25))
         mat(1037) = -rxt(95)*y(22)
         mat(907) = -rxt(101)*y(22)
         mat(1082) = -rxt(272)*y(22)
         mat(1037) = mat(1037) + 2.000_r8*rxt(93)*y(20)
         mat(865) = 2.000_r8*rxt(100)*y(21)
         mat(988) = -(rxt(76)*y(3))
         mat(355) = -rxt(76)*y(49)
         mat(1077) = 2.000_r8*rxt(92)*y(20) + rxt(114)*y(9) + rxt(120)*y(10) + ( &
                      + rxt(125)+rxt(134))*y(14) + rxt(127)*y(16) + rxt(91)*y(21) &
                      + rxt(95)*y(22) + rxt(288)*y(30) + rxt(292)*y(31) + rxt(308) &
                      *y(36) + rxt(144)*y(54) + rxt(141)*y(56) + rxt(150)*y(59) &
                      + rxt(157)*y(61) + rxt(173)*y(63) + rxt(172)*y(65) + rxt(176) &
                      *y(67) + rxt(177)*y(68) + rxt(181)*y(70) + .500_r8*rxt(194) &
                      *y(83) + rxt(183)*y(89) + (rxt(236)+rxt(237))*y(91) + rxt(259) &
                      *y(115) + rxt(135)*y(132)
         mat(409) = rxt(114)*y(20)
         mat(171) = rxt(120)*y(20)
         mat(176) = (rxt(125)+rxt(134))*y(20)
         mat(1114) = rxt(127)*y(20)
         mat(431) = rxt(88)*y(21)
         mat(901) = rxt(91)*y(20) + rxt(88)*y(19)
         mat(293) = rxt(95)*y(20)
         mat(704) = rxt(288)*y(20) + (rxt(321)+rxt(326)+rxt(332))*y(31) + (rxt(322) &
                       +rxt(333))*y(37)
         mat(424) = rxt(292)*y(20) + (rxt(321)+rxt(326)+rxt(332))*y(30)
         mat(233) = rxt(308)*y(20)
         mat(375) = (rxt(322)+rxt(333))*y(30)
         mat(278) = rxt(144)*y(20)
         mat(36) = rxt(141)*y(20)
         mat(468) = rxt(150)*y(20)
         mat(209) = rxt(157)*y(20)
         mat(40) = rxt(173)*y(20)
         mat(138) = rxt(172)*y(20)
         mat(240) = rxt(176)*y(20)
         mat(345) = rxt(177)*y(20)
         mat(143) = rxt(181)*y(20)
         mat(525) = .500_r8*rxt(194)*y(20)
         mat(543) = rxt(183)*y(20)
         mat(122) = (rxt(236)+rxt(237))*y(20)
         mat(29) = rxt(259)*y(20)
         mat(165) = rxt(135)*y(20)
         mat(1098) = -(rxt(270)*y(1) + rxt(272)*y(22) + (rxt(273) + rxt(274)) * y(21) &
                      + rxt(275)*y(16) + rxt(291)*y(31) + rxt(295)*y(32))
         mat(796) = -rxt(270)*y(25)
         mat(295) = -rxt(272)*y(25)
         mat(903) = -(rxt(273) + rxt(274)) * y(25)
         mat(1116) = -rxt(275)*y(25)
         mat(426) = -rxt(291)*y(25)
         mat(444) = -rxt(295)*y(25)
         mat(925) = rxt(277)*y(27) + rxt(289)*y(30)
         mat(843) = rxt(281)*y(27)
         mat(1079) = rxt(278)*y(27) + rxt(288)*y(30)
         mat(760) = rxt(277)*y(2) + rxt(281)*y(6) + rxt(278)*y(20) + ( &
                      + 4.000_r8*rxt(283)+2.000_r8*rxt(285))*y(27) + rxt(305)*y(35)
         mat(706) = rxt(289)*y(2) + rxt(288)*y(20)
         mat(944) = rxt(305)*y(27)
         mat(1081) = rxt(295)*y(32)
         mat(744) = 2.000_r8*rxt(284)*y(27)
         mat(688) = (rxt(321)+rxt(326)+rxt(332))*y(31) + (rxt(320)+rxt(325)+rxt(331)) &
                      *y(32)
         mat(419) = (rxt(321)+rxt(326)+rxt(332))*y(30)
         mat(433) = rxt(295)*y(25) + (rxt(320)+rxt(325)+rxt(331))*y(30)
         mat(751) = -(rxt(277)*y(2) + (rxt(278) + rxt(279)) * y(20) + rxt(280)*y(21) &
                      + rxt(281)*y(6) + rxt(282)*y(7) + (4._r8*rxt(283) + 4._r8*rxt(284) &
                      + 4._r8*rxt(285) + 4._r8*rxt(286)) * y(27) + (rxt(304) + rxt(305) &
                      + rxt(306)) * y(35))
         mat(916) = -rxt(277)*y(27)
         mat(1070) = -(rxt(278) + rxt(279)) * y(27)
         mat(894) = -rxt(280)*y(27)
         mat(834) = -rxt(281)*y(27)
         mat(966) = -rxt(282)*y(27)
         mat(935) = -(rxt(304) + rxt(305) + rxt(306)) * y(27)
         mat(787) = rxt(270)*y(25)
         mat(916) = mat(916) + rxt(290)*y(31) + rxt(293)*y(32)
         mat(1070) = mat(1070) + rxt(292)*y(31)
         mat(894) = mat(894) + rxt(274)*y(25)
         mat(1089) = rxt(270)*y(1) + rxt(274)*y(21) + rxt(291)*y(31)
         mat(422) = rxt(290)*y(2) + rxt(292)*y(20) + rxt(291)*y(25)
         mat(439) = rxt(293)*y(2)
         mat(743) = 2.000_r8*rxt(285)*y(27) + rxt(304)*y(35)
         mat(927) = rxt(304)*y(27)
         mat(742) = 2.000_r8*rxt(286)*y(27)
         mat(696) = -(rxt(288)*y(20) + rxt(289)*y(2) + (rxt(320) + rxt(325) + rxt(331) &
                      ) * y(32) + (rxt(321) + rxt(326) + rxt(332)) * y(31) + (rxt(322) &
                      + rxt(333)) * y(37))
         mat(1068) = -rxt(288)*y(30)
         mat(914) = -rxt(289)*y(30)
         mat(437) = -(rxt(320) + rxt(325) + rxt(331)) * y(30)
         mat(421) = -(rxt(321) + rxt(326) + rxt(332)) * y(30)
         mat(372) = -(rxt(322) + rxt(333)) * y(30)
         mat(1068) = mat(1068) + rxt(279)*y(27)
         mat(1105) = rxt(275)*y(25)
         mat(892) = rxt(273)*y(25)
         mat(290) = rxt(272)*y(25)
         mat(1087) = rxt(275)*y(16) + rxt(273)*y(21) + rxt(272)*y(22) + rxt(291)*y(31)
         mat(749) = rxt(279)*y(20)
         mat(421) = mat(421) + rxt(291)*y(25)
         mat(420) = -(rxt(290)*y(2) + rxt(291)*y(25) + rxt(292)*y(20) + (rxt(321) &
                      + rxt(326) + rxt(332)) * y(30))
         mat(910) = -rxt(290)*y(31)
         mat(1083) = -rxt(291)*y(31)
         mat(1049) = -rxt(292)*y(31)
         mat(692) = -(rxt(321) + rxt(326) + rxt(332)) * y(31)
         mat(1049) = mat(1049) + rxt(294)*y(32)
         mat(875) = rxt(280)*y(27)
         mat(746) = rxt(280)*y(21)
         mat(435) = rxt(294)*y(20)
         mat(436) = -(rxt(293)*y(2) + rxt(294)*y(20) + rxt(295)*y(25) + (rxt(320) &
                      + rxt(325) + rxt(331)) * y(30))
         mat(912) = -rxt(293)*y(32)
         mat(1051) = -rxt(294)*y(32)
         mat(1085) = -rxt(295)*y(32)
         mat(694) = -(rxt(320) + rxt(325) + rxt(331)) * y(32)
         mat(957) = rxt(282)*y(27)
         mat(747) = rxt(282)*y(7)
         mat(745) = rxt(306)*y(35)
         mat(689) = (rxt(322)+rxt(333))*y(37)
         mat(928) = rxt(306)*y(27)
         mat(369) = (rxt(322)+rxt(333))*y(30)
         mat(529) = -(rxt(296)*y(1) + rxt(297)*y(21) + rxt(298)*y(16))
         mat(777) = -rxt(296)*y(34)
         mat(883) = -rxt(297)*y(34)
         mat(1104) = -rxt(298)*y(34)
         mat(913) = rxt(299)*y(35) + rxt(309)*y(36)
         mat(824) = rxt(302)*y(35)
         mat(1059) = rxt(300)*y(35) + rxt(308)*y(36)
         mat(748) = (rxt(304)+rxt(305))*y(35)
         mat(932) = rxt(299)*y(2) + rxt(302)*y(6) + rxt(300)*y(20) + (rxt(304) &
                       +rxt(305))*y(27) + 4.000_r8*rxt(307)*y(35)
         mat(231) = rxt(309)*y(2) + rxt(308)*y(20)
         mat(940) = -(rxt(299)*y(2) + rxt(300)*y(20) + rxt(301)*y(21) + rxt(302)*y(6) &
                      + rxt(303)*y(7) + (rxt(304) + rxt(305) + rxt(306)) * y(27) &
                      + 4._r8*rxt(307)*y(35))
         mat(921) = -rxt(299)*y(35)
         mat(1075) = -rxt(300)*y(35)
         mat(899) = -rxt(301)*y(35)
         mat(839) = -rxt(302)*y(35)
         mat(971) = -rxt(303)*y(35)
         mat(756) = -(rxt(304) + rxt(305) + rxt(306)) * y(35)
         mat(792) = rxt(296)*y(34)
         mat(921) = mat(921) + rxt(310)*y(37) + rxt(311)*y(38)
         mat(533) = rxt(296)*y(1)
         mat(374) = rxt(310)*y(2)
         mat(257) = rxt(311)*y(2)
         mat(230) = -(rxt(308)*y(20) + rxt(309)*y(2))
         mat(1029) = -rxt(308)*y(36)
         mat(905) = -rxt(309)*y(36)
         mat(1101) = rxt(298)*y(34)
         mat(861) = rxt(297)*y(34)
         mat(528) = rxt(298)*y(16) + rxt(297)*y(21)
         mat(370) = -(rxt(310)*y(2) + (rxt(322) + rxt(333)) * y(30))
         mat(908) = -rxt(310)*y(37)
         mat(690) = -(rxt(322) + rxt(333)) * y(37)
         mat(872) = rxt(301)*y(35)
         mat(930) = rxt(301)*y(21)
         mat(251) = -(rxt(311)*y(2))
         mat(906) = -rxt(311)*y(38)
         mat(953) = rxt(303)*y(35)
         mat(929) = rxt(303)*y(7)
         mat(267) = -(rxt(133)*y(20))
         mat(1033) = -rxt(133)*y(15)
         mat(660) = 2.000_r8*rxt(132)*y(13) + .300_r8*rxt(147)*y(57) &
                      + .500_r8*rxt(180)*y(69) + .250_r8*rxt(219)*y(80) &
                      + .250_r8*rxt(200)*y(84) + .300_r8*rxt(234)*y(90)
         mat(332) = .300_r8*rxt(147)*y(13)
         mat(471) = .500_r8*rxt(180)*y(13)
         mat(597) = .250_r8*rxt(219)*y(13)
         mat(578) = .250_r8*rxt(200)*y(13)
         mat(547) = .300_r8*rxt(234)*y(13)
         mat(88) = -(rxt(163)*y(20))
         mat(1006) = -rxt(163)*y(50)
         mat(656) = .200_r8*rxt(147)*y(57)
         mat(330) = .200_r8*rxt(147)*y(13) + .800_r8*rxt(148)*y(57)
         mat(124) = -(rxt(142)*y(20) + rxt(143)*y(1))
         mat(1012) = -rxt(142)*y(51)
         mat(762) = -rxt(143)*y(51)
         mat(798) = rxt(158)*y(53)
         mat(146) = rxt(158)*y(6)
         mat(147) = -(rxt(158)*y(6))
         mat(802) = -rxt(158)*y(53)
         mat(1016) = .750_r8*rxt(142)*y(51)
         mat(125) = .750_r8*rxt(142)*y(20)
         mat(276) = -(rxt(144)*y(20))
         mat(1035) = -rxt(144)*y(54)
         mat(766) = .250_r8*rxt(167)*y(62) + .200_r8*rxt(213)*y(79)
         mat(662) = .100_r8*rxt(155)*y(60)
         mat(864) = .250_r8*rxt(154)*y(60) + .250_r8*rxt(205)*y(86)
         mat(637) = .100_r8*rxt(155)*y(13) + .250_r8*rxt(154)*y(21)
         mat(446) = .250_r8*rxt(167)*y(1)
         mat(378) = .200_r8*rxt(213)*y(1)
         mat(618) = .250_r8*rxt(205)*y(21)
         mat(272) = -(rxt(161)*y(20))
         mat(1034) = -rxt(161)*y(55)
         mat(810) = .530_r8*rxt(196)*y(84) + .250_r8*rxt(231)*y(90)
         mat(714) = .530_r8*rxt(198)*y(84) + .250_r8*rxt(232)*y(90)
         mat(661) = .260_r8*rxt(200)*y(84) + .100_r8*rxt(234)*y(90)
         mat(636) = .530_r8*rxt(201)*y(84) + .250_r8*rxt(235)*y(90)
         mat(579) = .530_r8*rxt(196)*y(6) + .530_r8*rxt(198)*y(8) + .260_r8*rxt(200) &
                      *y(13) + .530_r8*rxt(201)*y(60)
         mat(548) = .250_r8*rxt(231)*y(6) + .250_r8*rxt(232)*y(8) + .100_r8*rxt(234) &
                      *y(13) + .250_r8*rxt(235)*y(60)
      end subroutine nlnmat03
      subroutine nlnmat04( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(34) = -(rxt(141)*y(20))
         mat(997) = -rxt(141)*y(56)
         mat(333) = -(rxt(145)*y(6) + rxt(146)*y(21) + rxt(147)*y(13) + 4._r8*rxt(148) &
                      *y(57))
         mat(813) = -rxt(145)*y(57)
         mat(869) = -rxt(146)*y(57)
         mat(663) = -rxt(147)*y(57)
         mat(1041) = rxt(141)*y(56) + .500_r8*rxt(149)*y(58)
         mat(35) = rxt(141)*y(20)
         mat(99) = .500_r8*rxt(149)*y(20)
         mat(98) = -(rxt(149)*y(20))
         mat(1007) = -rxt(149)*y(58)
         mat(845) = rxt(146)*y(57)
         mat(331) = rxt(146)*y(21)
         mat(462) = -(rxt(150)*y(20) + rxt(151)*y(8))
         mat(1053) = -rxt(150)*y(59)
         mat(720) = -rxt(151)*y(59)
         mat(772) = .500_r8*rxt(167)*y(62) + .040_r8*rxt(189)*y(82)
         mat(818) = rxt(145)*y(57) + .270_r8*rxt(169)*y(64) + rxt(174)*y(66) &
                      + rxt(187)*y(72) + .400_r8*rxt(228)*y(77) + rxt(191)*y(74)
         mat(1053) = mat(1053) + rxt(163)*y(50) + .500_r8*rxt(149)*y(58)
         mat(667) = .800_r8*rxt(147)*y(57)
         mat(89) = rxt(163)*y(20)
         mat(334) = rxt(145)*y(6) + .800_r8*rxt(147)*y(13) + 3.200_r8*rxt(148)*y(57)
         mat(100) = .500_r8*rxt(149)*y(20)
         mat(449) = .500_r8*rxt(167)*y(1)
         mat(396) = .270_r8*rxt(169)*y(6)
         mat(361) = rxt(174)*y(6)
         mat(105) = rxt(187)*y(6)
         mat(322) = .400_r8*rxt(228)*y(6)
         mat(309) = rxt(191)*y(6)
         mat(562) = .040_r8*rxt(189)*y(1)
         mat(646) = -(rxt(152)*y(6) + rxt(153)*y(7) + rxt(154)*y(21) + rxt(155)*y(13) &
                      + 4._r8*rxt(156)*y(60) + rxt(201)*y(84) + rxt(220)*y(80) + rxt(235) &
                      *y(90))
         mat(831) = -rxt(152)*y(60)
         mat(962) = -rxt(153)*y(60)
         mat(890) = -rxt(154)*y(60)
         mat(677) = -rxt(155)*y(60)
         mat(586) = -rxt(201)*y(60)
         mat(606) = -rxt(220)*y(60)
         mat(552) = -rxt(235)*y(60)
         mat(831) = mat(831) + rxt(178)*y(69) + rxt(191)*y(74) + .530_r8*rxt(196) &
                      *y(84) + rxt(203)*y(86)
         mat(1066) = rxt(150)*y(59) + .500_r8*rxt(157)*y(61) + rxt(183)*y(89)
         mat(731) = rxt(151)*y(59) + .530_r8*rxt(198)*y(84) + rxt(204)*y(86) &
                      + rxt(184)*y(89)
         mat(677) = mat(677) + .300_r8*rxt(180)*y(69) + .260_r8*rxt(200)*y(84) &
                      + rxt(206)*y(86)
         mat(463) = rxt(150)*y(20) + rxt(151)*y(8)
         mat(646) = mat(646) + .530_r8*rxt(201)*y(84)
         mat(207) = .500_r8*rxt(157)*y(20)
         mat(475) = rxt(178)*y(6) + .300_r8*rxt(180)*y(13)
         mat(310) = rxt(191)*y(6)
         mat(586) = mat(586) + .530_r8*rxt(196)*y(6) + .530_r8*rxt(198)*y(8) &
                      + .260_r8*rxt(200)*y(13) + .530_r8*rxt(201)*y(60)
         mat(622) = rxt(203)*y(6) + rxt(204)*y(8) + rxt(206)*y(13) + 4.000_r8*rxt(208) &
                      *y(86)
         mat(539) = rxt(183)*y(20) + rxt(184)*y(8)
         mat(206) = -(rxt(157)*y(20))
         mat(1025) = -rxt(157)*y(61)
         mat(857) = .750_r8*rxt(154)*y(60) + .750_r8*rxt(205)*y(86)
         mat(634) = .750_r8*rxt(154)*y(21)
         mat(616) = .750_r8*rxt(205)*y(21)
         mat(448) = -(rxt(166)*y(20) + rxt(167)*y(1) + rxt(168)*y(8))
         mat(1052) = -rxt(166)*y(62)
         mat(771) = -rxt(167)*y(62)
         mat(719) = -rxt(168)*y(62)
         mat(771) = mat(771) + .070_r8*rxt(213)*y(79)
         mat(380) = .070_r8*rxt(213)*y(1)
         mat(38) = -(rxt(173)*y(20))
         mat(998) = -rxt(173)*y(63)
         mat(395) = -(rxt(169)*y(6) + rxt(170)*y(21) + rxt(171)*y(13))
         mat(816) = -rxt(169)*y(64)
         mat(873) = -rxt(170)*y(64)
         mat(665) = -rxt(171)*y(64)
         mat(1046) = rxt(173)*y(63) + rxt(172)*y(65)
         mat(39) = rxt(173)*y(20)
         mat(136) = rxt(172)*y(20)
         mat(134) = -(rxt(172)*y(20))
         mat(1014) = -rxt(172)*y(65)
         mat(849) = rxt(170)*y(64)
         mat(393) = rxt(170)*y(21)
         mat(360) = -(rxt(174)*y(6) + rxt(175)*y(21))
         mat(815) = -rxt(174)*y(66)
         mat(871) = -rxt(175)*y(66)
         mat(1044) = rxt(166)*y(62) + .500_r8*rxt(176)*y(67)
         mat(447) = rxt(166)*y(20)
         mat(236) = .500_r8*rxt(176)*y(20)
         mat(235) = -(rxt(176)*y(20))
         mat(1030) = -rxt(176)*y(67)
         mat(862) = rxt(175)*y(66)
         mat(359) = rxt(175)*y(21)
         mat(341) = -(rxt(177)*y(20))
         mat(1042) = -rxt(177)*y(68)
         mat(814) = .820_r8*rxt(169)*y(64) + .500_r8*rxt(187)*y(72) + .250_r8*rxt(228) &
                      *y(77) + .100_r8*rxt(247)*y(93)
         mat(664) = .820_r8*rxt(171)*y(64)
         mat(394) = .820_r8*rxt(169)*y(6) + .820_r8*rxt(171)*y(13)
         mat(104) = .500_r8*rxt(187)*y(6)
         mat(321) = .250_r8*rxt(228)*y(6)
         mat(497) = .100_r8*rxt(247)*y(6)
         mat(472) = -(rxt(178)*y(6) + rxt(179)*y(21) + rxt(180)*y(13))
         mat(819) = -rxt(178)*y(69)
         mat(878) = -rxt(179)*y(69)
         mat(668) = -rxt(180)*y(69)
         mat(1054) = rxt(177)*y(68) + rxt(181)*y(70)
         mat(342) = rxt(177)*y(20)
         mat(141) = rxt(181)*y(20)
         mat(140) = -(rxt(181)*y(20))
         mat(1015) = -rxt(181)*y(70)
         mat(850) = rxt(179)*y(69)
         mat(470) = rxt(179)*y(21)
         mat(22) = -(rxt(186)*y(20))
         mat(993) = -rxt(186)*y(71)
         mat(103) = -(rxt(187)*y(6))
         mat(800) = -rxt(187)*y(72)
         mat(1008) = rxt(186)*y(71)
         mat(23) = rxt(186)*y(20)
         mat(25) = -(rxt(224)*y(20))
         mat(994) = -rxt(224)*y(76)
         mat(319) = -(rxt(228)*y(6) + rxt(229)*y(21))
         mat(812) = -rxt(228)*y(77)
         mat(868) = -rxt(229)*y(77)
         mat(1040) = rxt(224)*y(76) + rxt(230)*y(78)
         mat(26) = rxt(224)*y(20)
         mat(299) = rxt(230)*y(20)
         mat(297) = -(rxt(230)*y(20))
         mat(1038) = -rxt(230)*y(78)
         mat(866) = rxt(229)*y(77)
         mat(317) = rxt(229)*y(21)
         mat(179) = -(rxt(190)*y(20))
         mat(1022) = -rxt(190)*y(73)
         mat(805) = .800_r8*rxt(228)*y(77)
         mat(316) = .800_r8*rxt(228)*y(6)
         mat(308) = -(rxt(191)*y(6) + rxt(192)*y(21))
         mat(811) = -rxt(191)*y(74)
         mat(867) = -rxt(192)*y(74)
         mat(1039) = rxt(190)*y(73) + rxt(193)*y(75)
         mat(180) = rxt(190)*y(20)
         mat(111) = rxt(193)*y(20)
         mat(110) = -(rxt(193)*y(20))
         mat(1009) = -rxt(193)*y(75)
         mat(846) = rxt(192)*y(74)
         mat(307) = rxt(192)*y(21)
         mat(379) = -(rxt(212)*y(20) + rxt(213)*y(1) + rxt(214)*y(8))
         mat(1045) = -rxt(212)*y(79)
         mat(769) = -rxt(213)*y(79)
         mat(716) = -rxt(214)*y(79)
         mat(604) = -(rxt(215)*y(6) + rxt(216)*y(8) + rxt(217)*y(21) + rxt(219)*y(13) &
                      + rxt(220)*y(60))
         mat(829) = -rxt(215)*y(80)
         mat(729) = -rxt(216)*y(80)
         mat(888) = -rxt(217)*y(80)
         mat(675) = -rxt(219)*y(80)
         mat(644) = -rxt(220)*y(80)
         mat(1064) = rxt(212)*y(79) + .200_r8*rxt(218)*y(81)
         mat(384) = rxt(212)*y(20)
         mat(247) = .200_r8*rxt(218)*y(20)
         mat(243) = -(rxt(218)*y(20))
         mat(1031) = -rxt(218)*y(81)
         mat(863) = rxt(217)*y(80)
         mat(596) = rxt(217)*y(21)
         mat(565) = -(rxt(188)*y(20) + rxt(189)*y(1))
         mat(1062) = -rxt(188)*y(82)
         mat(780) = -rxt(189)*y(82)
         mat(780) = mat(780) + .200_r8*rxt(213)*y(79) + rxt(245)*y(92)
         mat(827) = .320_r8*rxt(215)*y(80) + rxt(247)*y(93) + .039_r8*rxt(221)*y(105)
         mat(727) = .350_r8*rxt(216)*y(80) + .039_r8*rxt(222)*y(105)
         mat(673) = .260_r8*rxt(219)*y(80)
         mat(886) = .039_r8*rxt(223)*y(105)
         mat(642) = .350_r8*rxt(220)*y(80)
         mat(383) = .200_r8*rxt(213)*y(1)
         mat(602) = .320_r8*rxt(215)*y(6) + .350_r8*rxt(216)*y(8) + .260_r8*rxt(219) &
                      *y(13) + .350_r8*rxt(220)*y(60)
         mat(283) = rxt(245)*y(1)
         mat(503) = rxt(247)*y(6)
         mat(488) = .039_r8*rxt(221)*y(6) + .039_r8*rxt(222)*y(8) + .039_r8*rxt(223) &
                      *y(21)
         mat(518) = -(rxt(194)*y(20) + rxt(195)*y(1))
         mat(1058) = -rxt(194)*y(83)
         mat(776) = -rxt(195)*y(83)
         mat(776) = mat(776) + .400_r8*rxt(213)*y(79) + rxt(245)*y(92)
         mat(823) = .230_r8*rxt(215)*y(80) + rxt(247)*y(93) + .167_r8*rxt(221)*y(105)
         mat(724) = .250_r8*rxt(216)*y(80) + .167_r8*rxt(222)*y(105)
         mat(670) = .190_r8*rxt(219)*y(80)
         mat(882) = .167_r8*rxt(223)*y(105)
         mat(639) = .250_r8*rxt(220)*y(80)
         mat(382) = .400_r8*rxt(213)*y(1)
         mat(599) = .230_r8*rxt(215)*y(6) + .250_r8*rxt(216)*y(8) + .190_r8*rxt(219) &
                      *y(13) + .250_r8*rxt(220)*y(60)
         mat(282) = rxt(245)*y(1)
         mat(501) = rxt(247)*y(6)
         mat(486) = .167_r8*rxt(221)*y(6) + .167_r8*rxt(222)*y(8) + .167_r8*rxt(223) &
                      *y(21)
         mat(584) = -((rxt(196) + rxt(197)) * y(6) + rxt(198)*y(8) + rxt(199)*y(21) &
                      + rxt(200)*y(13) + rxt(201)*y(60))
         mat(828) = -(rxt(196) + rxt(197)) * y(84)
         mat(728) = -rxt(198)*y(84)
         mat(887) = -rxt(199)*y(84)
         mat(674) = -rxt(200)*y(84)
         mat(643) = -rxt(201)*y(84)
         mat(1063) = rxt(188)*y(82) + .500_r8*rxt(194)*y(83) + .200_r8*rxt(202)*y(85)
         mat(566) = rxt(188)*y(20)
         mat(520) = .500_r8*rxt(194)*y(20)
         mat(116) = .200_r8*rxt(202)*y(20)
      end subroutine nlnmat04
      subroutine nlnmat05( mat, y, rxt )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat(115) = -(rxt(202)*y(20))
         mat(1010) = -rxt(202)*y(85)
         mat(847) = rxt(199)*y(84)
         mat(577) = rxt(199)*y(21)
         mat(621) = -(rxt(203)*y(6) + rxt(204)*y(8) + rxt(205)*y(21) + rxt(206)*y(13) &
                      + rxt(207)*y(60) + 4._r8*rxt(208)*y(86) + rxt(209)*y(7))
         mat(830) = -rxt(203)*y(86)
         mat(730) = -rxt(204)*y(86)
         mat(889) = -rxt(205)*y(86)
         mat(676) = -rxt(206)*y(86)
         mat(645) = -rxt(207)*y(86)
         mat(961) = -rxt(209)*y(86)
         mat(783) = .200_r8*rxt(213)*y(79)
         mat(1065) = .500_r8*rxt(194)*y(83) + .500_r8*rxt(202)*y(85)
         mat(385) = .200_r8*rxt(213)*y(1)
         mat(521) = .500_r8*rxt(194)*y(20)
         mat(117) = .500_r8*rxt(202)*y(20)
         mat(131) = -(rxt(227)*y(20))
         mat(1013) = -rxt(227)*y(87)
         mat(801) = .370_r8*rxt(215)*y(80)
         mat(1013) = mat(1013) + rxt(225)*y(106)
         mat(711) = .400_r8*rxt(216)*y(80) + rxt(226)*y(106)
         mat(657) = .300_r8*rxt(219)*y(80)
         mat(632) = .400_r8*rxt(220)*y(80)
         mat(595) = .370_r8*rxt(215)*y(6) + .400_r8*rxt(216)*y(8) + .300_r8*rxt(219) &
                      *y(13) + .400_r8*rxt(220)*y(60)
         mat(411) = rxt(225)*y(20) + rxt(226)*y(8)
         mat(512) = -(rxt(182)*y(20))
         mat(1057) = -rxt(182)*y(88)
         mat(822) = .220_r8*rxt(196)*y(84) + .250_r8*rxt(231)*y(90)
         mat(1057) = mat(1057) + .500_r8*rxt(176)*y(67) + .500_r8*rxt(211)*y(104)
         mat(723) = .220_r8*rxt(198)*y(84) + .250_r8*rxt(232)*y(90)
         mat(669) = .200_r8*rxt(180)*y(69) + .230_r8*rxt(200)*y(84) + .100_r8*rxt(234) &
                      *y(90)
         mat(638) = .220_r8*rxt(201)*y(84) + .250_r8*rxt(235)*y(90)
         mat(238) = .500_r8*rxt(176)*y(20)
         mat(473) = .200_r8*rxt(180)*y(13)
         mat(581) = .220_r8*rxt(196)*y(6) + .220_r8*rxt(198)*y(8) + .230_r8*rxt(200) &
                      *y(13) + .220_r8*rxt(201)*y(60)
         mat(549) = .250_r8*rxt(231)*y(6) + .250_r8*rxt(232)*y(8) + .100_r8*rxt(234) &
                      *y(13) + .250_r8*rxt(235)*y(60)
         mat(260) = .500_r8*rxt(211)*y(20)
         mat(538) = -(rxt(183)*y(20) + rxt(184)*y(8))
         mat(1060) = -rxt(183)*y(89)
         mat(725) = -rxt(184)*y(89)
         mat(778) = .950_r8*rxt(189)*y(82) + .800_r8*rxt(195)*y(83)
         mat(825) = .250_r8*rxt(196)*y(84) + .250_r8*rxt(231)*y(90) + .450_r8*rxt(239) &
                      *y(97)
         mat(1060) = mat(1060) + rxt(182)*y(88) + rxt(185)*y(103)
         mat(725) = mat(725) + .250_r8*rxt(198)*y(84) + .250_r8*rxt(232)*y(90)
         mat(671) = .500_r8*rxt(180)*y(69) + .240_r8*rxt(200)*y(84) + .100_r8*rxt(234) &
                      *y(90)
         mat(640) = .250_r8*rxt(201)*y(84) + .250_r8*rxt(235)*y(90)
         mat(474) = .500_r8*rxt(180)*y(13)
         mat(564) = .950_r8*rxt(189)*y(1)
         mat(519) = .800_r8*rxt(195)*y(1)
         mat(582) = .250_r8*rxt(196)*y(6) + .250_r8*rxt(198)*y(8) + .240_r8*rxt(200) &
                      *y(13) + .250_r8*rxt(201)*y(60)
         mat(513) = rxt(182)*y(20)
         mat(550) = .250_r8*rxt(231)*y(6) + .250_r8*rxt(232)*y(8) + .100_r8*rxt(234) &
                      *y(13) + .250_r8*rxt(235)*y(60)
         mat(224) = .450_r8*rxt(239)*y(6)
         mat(160) = rxt(185)*y(20)
         mat(551) = -(rxt(231)*y(6) + rxt(232)*y(8) + rxt(233)*y(21) + rxt(234)*y(13) &
                      + rxt(235)*y(60))
         mat(826) = -rxt(231)*y(90)
         mat(726) = -rxt(232)*y(90)
         mat(885) = -rxt(233)*y(90)
         mat(672) = -rxt(234)*y(90)
         mat(641) = -rxt(235)*y(90)
         mat(1061) = .800_r8*rxt(218)*y(81) + rxt(227)*y(87) + rxt(236)*y(91)
         mat(245) = .800_r8*rxt(218)*y(20)
         mat(132) = rxt(227)*y(20)
         mat(121) = rxt(236)*y(20)
         mat(120) = -((rxt(236) + rxt(237)) * y(20))
         mat(1011) = -(rxt(236) + rxt(237)) * y(91)
         mat(848) = rxt(233)*y(90) + rxt(223)*y(105)
         mat(545) = rxt(233)*y(21)
         mat(483) = rxt(223)*y(21)
         mat(280) = -(rxt(244)*y(20) + rxt(245)*y(1) + rxt(246)*y(8))
         mat(1036) = -rxt(244)*y(92)
         mat(767) = -rxt(245)*y(92)
         mat(715) = -rxt(246)*y(92)
         mat(499) = -(rxt(247)*y(6) + rxt(248)*y(21))
         mat(821) = -rxt(247)*y(93)
         mat(880) = -rxt(248)*y(93)
         mat(1056) = rxt(244)*y(92) + rxt(249)*y(94)
         mat(722) = rxt(246)*y(92)
         mat(281) = rxt(244)*y(20) + rxt(246)*y(8)
         mat(186) = rxt(249)*y(20)
         mat(184) = -(rxt(249)*y(20))
         mat(1023) = -rxt(249)*y(94)
         mat(855) = rxt(248)*y(93)
         mat(496) = rxt(248)*y(21)
         mat(45) = -(rxt(238)*y(20))
         mat(1000) = -rxt(238)*y(95)
         mat(50) = -(rxt(242)*y(20))
         mat(1001) = -rxt(242)*y(96)
         mat(1001) = mat(1001) + .250_r8*rxt(238)*y(95)
         mat(46) = .250_r8*rxt(238)*y(20)
         mat(223) = -(rxt(239)*y(6) + rxt(240)*y(21))
         mat(809) = -rxt(239)*y(97)
         mat(860) = -rxt(240)*y(97)
         mat(1028) = .700_r8*rxt(238)*y(95) + rxt(241)*y(98)
         mat(47) = .700_r8*rxt(238)*y(20)
         mat(156) = rxt(241)*y(20)
         mat(153) = -(rxt(241)*y(20))
         mat(1017) = -rxt(241)*y(98)
         mat(851) = rxt(240)*y(97)
         mat(220) = rxt(240)*y(21)
         mat(67) = -(rxt(243)*y(7))
         mat(946) = -rxt(243)*y(99)
         mat(1003) = rxt(242)*y(96)
         mat(51) = rxt(242)*y(20)
         mat(807) = .900_r8*rxt(239)*y(97)
         mat(951) = .700_r8*rxt(243)*y(99)
         mat(221) = .900_r8*rxt(239)*y(6)
         mat(68) = .700_r8*rxt(243)*y(7)
         mat(217) = -(rxt(162)*y(20))
         mat(1027) = -rxt(162)*y(101)
         mat(808) = .250_r8*rxt(231)*y(90) + .450_r8*rxt(239)*y(97)
         mat(1027) = mat(1027) + .200_r8*rxt(161)*y(55) + .650_r8*rxt(140)*y(131)
         mat(713) = .250_r8*rxt(232)*y(90)
         mat(659) = .100_r8*rxt(234)*y(90)
         mat(271) = .200_r8*rxt(161)*y(20)
         mat(635) = .250_r8*rxt(235)*y(90)
         mat(546) = .250_r8*rxt(231)*y(6) + .250_r8*rxt(232)*y(8) + .100_r8*rxt(234) &
                      *y(13) + .250_r8*rxt(235)*y(60)
         mat(222) = .450_r8*rxt(239)*y(6)
         mat(58) = .650_r8*rxt(140)*y(20)
         mat(191) = -(rxt(165)*y(20))
         mat(1024) = -rxt(165)*y(102)
         mat(950) = rxt(153)*y(60)
         mat(633) = rxt(153)*y(7)
         mat(159) = -(rxt(185)*y(20))
         mat(1018) = -rxt(185)*y(103)
         mat(803) = .100_r8*rxt(228)*y(77)
         mat(712) = rxt(168)*y(62)
         mat(445) = rxt(168)*y(8)
         mat(315) = .100_r8*rxt(228)*y(6)
         mat(259) = -(rxt(211)*y(20))
         mat(1032) = -rxt(211)*y(104)
         mat(954) = rxt(209)*y(86)
         mat(617) = rxt(209)*y(7)
         mat(485) = -(rxt(221)*y(6) + rxt(222)*y(8) + rxt(223)*y(21))
         mat(820) = -rxt(221)*y(105)
         mat(721) = -rxt(222)*y(105)
         mat(879) = -rxt(223)*y(105)
         mat(721) = mat(721) + rxt(214)*y(79)
         mat(381) = rxt(214)*y(8)
         mat(412) = -(rxt(225)*y(20) + rxt(226)*y(8))
         mat(1048) = -rxt(225)*y(106)
         mat(718) = -rxt(226)*y(106)
         mat(817) = .080_r8*rxt(215)*y(80) + .800_r8*rxt(197)*y(84) + .794_r8*rxt(221) &
                      *y(105)
         mat(718) = mat(718) + .794_r8*rxt(222)*y(105)
         mat(874) = .794_r8*rxt(223)*y(105)
         mat(598) = .080_r8*rxt(215)*y(6)
         mat(580) = .800_r8*rxt(197)*y(6)
         mat(484) = .794_r8*rxt(221)*y(6) + .794_r8*rxt(222)*y(8) + .794_r8*rxt(223) &
                      *y(21)
         mat(43) = -(rxt(255)*y(20))
         mat(999) = -rxt(255)*y(112)
         mat(999) = mat(999) + (rxt(256)+.500_r8*rxt(257))*y(113)
         mat(708) = rxt(258)*y(113)
         mat(82) = (rxt(256)+.500_r8*rxt(257))*y(20) + rxt(258)*y(8)
         mat(83) = -((rxt(256) + rxt(257)) * y(20) + rxt(258)*y(8))
         mat(1005) = -(rxt(256) + rxt(257)) * y(113)
         mat(709) = -rxt(258)*y(113)
         mat(992) = rxt(255)*y(112)
         mat(42) = rxt(255)*y(20)
         mat(28) = -(rxt(259)*y(20))
         mat(995) = -rxt(259)*y(115)
         mat(56) = -(rxt(140)*y(20))
         mat(1002) = -rxt(140)*y(131)
         mat(163) = -(rxt(135)*y(20))
         mat(1019) = -rxt(135)*y(132)
         mat(764) = .500_r8*rxt(143)*y(51)
         mat(804) = rxt(138)*y(133)
         mat(1019) = mat(1019) + .350_r8*rxt(140)*y(131)
         mat(852) = rxt(139)*y(133)
         mat(126) = .500_r8*rxt(143)*y(1)
         mat(57) = .350_r8*rxt(140)*y(20)
         mat(198) = rxt(138)*y(6) + rxt(139)*y(21)
         mat(199) = -(rxt(138)*y(6) + rxt(139)*y(21))
         mat(806) = -rxt(138)*y(133)
         mat(856) = -rxt(139)*y(133)
         mat(1100) = rxt(136)*y(21)
         mat(856) = mat(856) + rxt(136)*y(16)
      end subroutine nlnmat05
      subroutine nlnmat_finit( mat, lmat, dti )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: dti
      real(r8), intent(in) :: lmat(nzcnt)
      real(r8), intent(inout) :: mat(nzcnt)
!----------------------------------------------
! ... local variables
!----------------------------------------------
!----------------------------------------------
! ... complete matrix entries implicit species
!----------------------------------------------
         mat( 1) = lmat( 1)
         mat( 2) = lmat( 2)
         mat( 3) = lmat( 3)
         mat( 4) = lmat( 4)
         mat( 5) = lmat( 5)
         mat( 6) = lmat( 6)
         mat( 7) = lmat( 7)
         mat( 8) = lmat( 8)
         mat( 9) = lmat( 9)
         mat( 10) = lmat( 10)
         mat( 11) = lmat( 11)
         mat( 12) = lmat( 12)
         mat( 13) = lmat( 13)
         mat( 14) = lmat( 14)
         mat( 15) = lmat( 15)
         mat( 16) = lmat( 16)
         mat( 17) = lmat( 17)
         mat( 18) = lmat( 18)
         mat( 19) = lmat( 19)
         mat( 20) = lmat( 20)
         mat( 21) = lmat( 21)
         mat( 22) = mat( 22) + lmat( 22)
         mat( 25) = mat( 25) + lmat( 25)
         mat( 28) = mat( 28) + lmat( 28)
         mat( 31) = mat( 31) + lmat( 31)
         mat( 34) = mat( 34) + lmat( 34)
         mat( 38) = mat( 38) + lmat( 38)
         mat( 43) = mat( 43) + lmat( 43)
         mat( 45) = mat( 45) + lmat( 45)
         mat( 50) = mat( 50) + lmat( 50)
         mat( 53) = lmat( 53)
         mat( 54) = lmat( 54)
         mat( 55) = lmat( 55)
         mat( 56) = mat( 56) + lmat( 56)
         mat( 61) = lmat( 61)
         mat( 62) = lmat( 62)
         mat( 63) = lmat( 63)
         mat( 64) = lmat( 64)
         mat( 65) = lmat( 65)
         mat( 66) = lmat( 66)
         mat( 67) = mat( 67) + lmat( 67)
         mat( 71) = mat( 71) + lmat( 71)
         mat( 72) = mat( 72) + lmat( 72)
         mat( 73) = mat( 73) + lmat( 73)
         mat( 75) = mat( 75) + lmat( 75)
         mat( 79) = lmat( 79)
         mat( 80) = lmat( 80)
         mat( 81) = lmat( 81)
         mat( 83) = mat( 83) + lmat( 83)
         mat( 88) = mat( 88) + lmat( 88)
         mat( 92) = lmat( 92)
         mat( 93) = lmat( 93)
         mat( 94) = lmat( 94)
         mat( 95) = lmat( 95)
         mat( 96) = lmat( 96)
         mat( 97) = lmat( 97)
         mat( 98) = mat( 98) + lmat( 98)
         mat( 100) = mat( 100) + lmat( 100)
         mat( 101) = lmat( 101)
         mat( 102) = mat( 102) + lmat( 102)
         mat( 103) = mat( 103) + lmat( 103)
         mat( 110) = mat( 110) + lmat( 110)
         mat( 112) = lmat( 112)
         mat( 113) = lmat( 113)
         mat( 114) = mat( 114) + lmat( 114)
         mat( 115) = mat( 115) + lmat( 115)
         mat( 120) = mat( 120) + lmat( 120)
         mat( 123) = mat( 123) + lmat( 123)
         mat( 124) = mat( 124) + lmat( 124)
         mat( 131) = mat( 131) + lmat( 131)
         mat( 134) = mat( 134) + lmat( 134)
         mat( 135) = lmat( 135)
         mat( 137) = lmat( 137)
         mat( 139) = mat( 139) + lmat( 139)
         mat( 140) = mat( 140) + lmat( 140)
         mat( 142) = lmat( 142)
         mat( 144) = mat( 144) + lmat( 144)
         mat( 145) = lmat( 145)
         mat( 147) = mat( 147) + lmat( 147)
         mat( 153) = mat( 153) + lmat( 153)
         mat( 154) = lmat( 154)
         mat( 155) = lmat( 155)
         mat( 157) = lmat( 157)
         mat( 158) = mat( 158) + lmat( 158)
         mat( 159) = mat( 159) + lmat( 159)
         mat( 163) = mat( 163) + lmat( 163)
         mat( 167) = mat( 167) + lmat( 167)
         mat( 168) = lmat( 168)
         mat( 169) = lmat( 169)
         mat( 170) = mat( 170) + lmat( 170)
         mat( 172) = mat( 172) + lmat( 172)
         mat( 173) = mat( 173) + lmat( 173)
         mat( 174) = lmat( 174)
         mat( 177) = mat( 177) + lmat( 177)
         mat( 178) = mat( 178) + lmat( 178)
         mat( 179) = mat( 179) + lmat( 179)
         mat( 181) = lmat( 181)
         mat( 182) = lmat( 182)
         mat( 184) = mat( 184) + lmat( 184)
         mat( 185) = lmat( 185)
         mat( 187) = lmat( 187)
         mat( 188) = lmat( 188)
         mat( 189) = lmat( 189)
         mat( 190) = mat( 190) + lmat( 190)
         mat( 191) = mat( 191) + lmat( 191)
         mat( 192) = lmat( 192)
         mat( 193) = lmat( 193)
         mat( 194) = mat( 194) + lmat( 194)
         mat( 195) = lmat( 195)
         mat( 199) = mat( 199) + lmat( 199)
         mat( 201) = mat( 201) + lmat( 201)
         mat( 205) = lmat( 205)
         mat( 206) = mat( 206) + lmat( 206)
         mat( 208) = lmat( 208)
         mat( 210) = mat( 210) + lmat( 210)
         mat( 212) = lmat( 212)
         mat( 213) = lmat( 213)
         mat( 214) = lmat( 214)
         mat( 215) = lmat( 215)
         mat( 216) = lmat( 216)
         mat( 217) = mat( 217) + lmat( 217)
         mat( 218) = mat( 218) + lmat( 218)
         mat( 223) = mat( 223) + lmat( 223)
         mat( 230) = mat( 230) + lmat( 230)
         mat( 235) = mat( 235) + lmat( 235)
         mat( 237) = lmat( 237)
         mat( 239) = lmat( 239)
         mat( 241) = mat( 241) + lmat( 241)
         mat( 242) = lmat( 242)
         mat( 243) = mat( 243) + lmat( 243)
         mat( 244) = lmat( 244)
         mat( 246) = lmat( 246)
         mat( 248) = lmat( 248)
         mat( 250) = lmat( 250)
         mat( 251) = mat( 251) + lmat( 251)
         mat( 252) = lmat( 252)
         mat( 253) = lmat( 253)
         mat( 254) = lmat( 254)
         mat( 255) = mat( 255) + lmat( 255)
         mat( 257) = mat( 257) + lmat( 257)
         mat( 258) = lmat( 258)
         mat( 259) = mat( 259) + lmat( 259)
         mat( 261) = lmat( 261)
         mat( 264) = lmat( 264)
         mat( 267) = mat( 267) + lmat( 267)
         mat( 272) = mat( 272) + lmat( 272)
         mat( 273) = mat( 273) + lmat( 273)
         mat( 275) = mat( 275) + lmat( 275)
         mat( 276) = mat( 276) + lmat( 276)
         mat( 280) = mat( 280) + lmat( 280)
         mat( 289) = mat( 289) + lmat( 289)
         mat( 294) = mat( 294) + lmat( 294)
         mat( 296) = lmat( 296)
         mat( 297) = mat( 297) + lmat( 297)
         mat( 301) = lmat( 301)
         mat( 302) = lmat( 302)
         mat( 304) = lmat( 304)
         mat( 305) = mat( 305) + lmat( 305)
         mat( 306) = lmat( 306)
         mat( 308) = mat( 308) + lmat( 308)
         mat( 319) = mat( 319) + lmat( 319)
         mat( 333) = mat( 333) + lmat( 333)
         mat( 341) = mat( 341) + lmat( 341)
         mat( 343) = lmat( 343)
         mat( 344) = lmat( 344)
         mat( 348) = mat( 348) + lmat( 348)
         mat( 349) = lmat( 349)
         mat( 350) = lmat( 350)
         mat( 351) = lmat( 351)
         mat( 352) = lmat( 352)
         mat( 353) = lmat( 353)
         mat( 354) = lmat( 354)
         mat( 356) = mat( 356) + lmat( 356)
         mat( 357) = lmat( 357)
         mat( 358) = lmat( 358)
         mat( 360) = mat( 360) + lmat( 360)
         mat( 370) = mat( 370) + lmat( 370)
         mat( 371) = lmat( 371)
         mat( 376) = mat( 376) + lmat( 376)
         mat( 379) = mat( 379) + lmat( 379)
         mat( 395) = mat( 395) + lmat( 395)
         mat( 406) = mat( 406) + lmat( 406)
         mat( 408) = lmat( 408)
         mat( 410) = mat( 410) + lmat( 410)
         mat( 412) = mat( 412) + lmat( 412)
         mat( 415) = mat( 415) + lmat( 415)
         mat( 416) = mat( 416) + lmat( 416)
         mat( 418) = lmat( 418)
         mat( 420) = mat( 420) + lmat( 420)
         mat( 425) = mat( 425) + lmat( 425)
         mat( 426) = mat( 426) + lmat( 426)
         mat( 427) = mat( 427) + lmat( 427)
         mat( 429) = mat( 429) + lmat( 429)
         mat( 434) = mat( 434) + lmat( 434)
         mat( 435) = mat( 435) + lmat( 435)
         mat( 436) = mat( 436) + lmat( 436)
         mat( 438) = mat( 438) + lmat( 438)
         mat( 439) = mat( 439) + lmat( 439)
         mat( 441) = lmat( 441)
         mat( 444) = mat( 444) + lmat( 444)
         mat( 448) = mat( 448) + lmat( 448)
         mat( 462) = mat( 462) + lmat( 462)
         mat( 464) = lmat( 464)
         mat( 466) = lmat( 466)
         mat( 472) = mat( 472) + lmat( 472)
         mat( 485) = mat( 485) + lmat( 485)
         mat( 499) = mat( 499) + lmat( 499)
         mat( 512) = mat( 512) + lmat( 512)
         mat( 514) = lmat( 514)
         mat( 515) = mat( 515) + lmat( 515)
         mat( 517) = lmat( 517)
         mat( 518) = mat( 518) + lmat( 518)
         mat( 521) = mat( 521) + lmat( 521)
         mat( 522) = lmat( 522)
         mat( 524) = mat( 524) + lmat( 524)
         mat( 526) = mat( 526) + lmat( 526)
         mat( 527) = mat( 527) + lmat( 527)
         mat( 529) = mat( 529) + lmat( 529)
         mat( 538) = mat( 538) + lmat( 538)
         mat( 539) = mat( 539) + lmat( 539)
         mat( 541) = lmat( 541)
         mat( 551) = mat( 551) + lmat( 551)
         mat( 561) = lmat( 561)
         mat( 565) = mat( 565) + lmat( 565)
         mat( 567) = lmat( 567)
         mat( 568) = lmat( 568)
         mat( 584) = mat( 584) + lmat( 584)
         mat( 604) = mat( 604) + lmat( 604)
         mat( 621) = mat( 621) + lmat( 621)
         mat( 646) = mat( 646) + lmat( 646)
         mat( 678) = mat( 678) + lmat( 678)
         mat( 693) = lmat( 693)
         mat( 696) = mat( 696) + lmat( 696)
         mat( 706) = mat( 706) + lmat( 706)
         mat( 717) = mat( 717) + lmat( 717)
         mat( 733) = mat( 733) + lmat( 733)
         mat( 735) = mat( 735) + lmat( 735)
         mat( 737) = mat( 737) + lmat( 737)
         mat( 738) = mat( 738) + lmat( 738)
         mat( 751) = mat( 751) + lmat( 751)
         mat( 768) = lmat( 768)
         mat( 788) = mat( 788) + lmat( 788)
         mat( 791) = mat( 791) + lmat( 791)
         mat( 799) = mat( 799) + lmat( 799)
         mat( 836) = mat( 836) + lmat( 836)
         mat( 838) = mat( 838) + lmat( 838)
         mat( 865) = mat( 865) + lmat( 865)
         mat( 897) = mat( 897) + lmat( 897)
         mat( 917) = mat( 917) + lmat( 917)
         mat( 920) = mat( 920) + lmat( 920)
         mat( 932) = mat( 932) + lmat( 932)
         mat( 939) = mat( 939) + lmat( 939)
         mat( 940) = mat( 940) + lmat( 940)
         mat( 956) = mat( 956) + lmat( 956)
         mat( 968) = mat( 968) + lmat( 968)
         mat( 970) = mat( 970) + lmat( 970)
         mat( 972) = mat( 972) + lmat( 972)
         mat( 974) = mat( 974) + lmat( 974)
         mat( 977) = mat( 977) + lmat( 977)
         mat( 978) = lmat( 978)
         mat( 985) = lmat( 985)
         mat( 988) = mat( 988) + lmat( 988)
         mat( 989) = mat( 989) + lmat( 989)
         mat(1050) = mat(1050) + lmat(1050)
         mat(1059) = mat(1059) + lmat(1059)
         mat(1067) = mat(1067) + lmat(1067)
         mat(1073) = mat(1073) + lmat(1073)
         mat(1077) = mat(1077) + lmat(1077)
         mat(1078) = mat(1078) + lmat(1078)
         mat(1079) = mat(1079) + lmat(1079)
         mat(1084) = lmat(1084)
         mat(1086) = lmat(1086)
         mat(1087) = mat(1087) + lmat(1087)
         mat(1092) = mat(1092) + lmat(1092)
         mat(1098) = mat(1098) + lmat(1098)
         mat(1103) = mat(1103) + lmat(1103)
         mat(1117) = mat(1117) + lmat(1117)
         mat( 148) = 0._r8
         mat( 150) = 0._r8
         mat( 152) = 0._r8
         mat( 203) = 0._r8
         mat( 204) = 0._r8
         mat( 225) = 0._r8
         mat( 229) = 0._r8
         mat( 298) = 0._r8
         mat( 300) = 0._r8
         mat( 303) = 0._r8
         mat( 314) = 0._r8
         mat( 318) = 0._r8
         mat( 320) = 0._r8
         mat( 323) = 0._r8
         mat( 324) = 0._r8
         mat( 328) = 0._r8
         mat( 339) = 0._r8
         mat( 362) = 0._r8
         mat( 366) = 0._r8
         mat( 367) = 0._r8
         mat( 377) = 0._r8
         mat( 386) = 0._r8
         mat( 390) = 0._r8
         mat( 397) = 0._r8
         mat( 398) = 0._r8
         mat( 403) = 0._r8
         mat( 404) = 0._r8
         mat( 413) = 0._r8
         mat( 442) = 0._r8
         mat( 450) = 0._r8
         mat( 451) = 0._r8
         mat( 455) = 0._r8
         mat( 457) = 0._r8
         mat( 458) = 0._r8
         mat( 467) = 0._r8
         mat( 480) = 0._r8
         mat( 481) = 0._r8
         mat( 487) = 0._r8
         mat( 493) = 0._r8
         mat( 494) = 0._r8
         mat( 498) = 0._r8
         mat( 500) = 0._r8
         mat( 502) = 0._r8
         mat( 504) = 0._r8
         mat( 505) = 0._r8
         mat( 509) = 0._r8
         mat( 510) = 0._r8
         mat( 511) = 0._r8
         mat( 532) = 0._r8
         mat( 534) = 0._r8
         mat( 535) = 0._r8
         mat( 542) = 0._r8
         mat( 558) = 0._r8
         mat( 559) = 0._r8
         mat( 563) = 0._r8
         mat( 569) = 0._r8
         mat( 571) = 0._r8
         mat( 573) = 0._r8
         mat( 574) = 0._r8
         mat( 583) = 0._r8
         mat( 585) = 0._r8
         mat( 592) = 0._r8
         mat( 593) = 0._r8
         mat( 600) = 0._r8
         mat( 601) = 0._r8
         mat( 603) = 0._r8
         mat( 605) = 0._r8
         mat( 609) = 0._r8
         mat( 613) = 0._r8
         mat( 614) = 0._r8
         mat( 619) = 0._r8
         mat( 620) = 0._r8
         mat( 629) = 0._r8
         mat( 630) = 0._r8
         mat( 648) = 0._r8
         mat( 653) = 0._r8
         mat( 654) = 0._r8
         mat( 666) = 0._r8
         mat( 679) = 0._r8
         mat( 680) = 0._r8
         mat( 683) = 0._r8
         mat( 685) = 0._r8
         mat( 686) = 0._r8
         mat( 695) = 0._r8
         mat( 697) = 0._r8
         mat( 698) = 0._r8
         mat( 699) = 0._r8
         mat( 700) = 0._r8
         mat( 702) = 0._r8
         mat( 703) = 0._r8
         mat( 707) = 0._r8
         mat( 732) = 0._r8
         mat( 734) = 0._r8
         mat( 739) = 0._r8
         mat( 750) = 0._r8
         mat( 752) = 0._r8
         mat( 758) = 0._r8
         mat( 761) = 0._r8
         mat( 763) = 0._r8
         mat( 765) = 0._r8
         mat( 773) = 0._r8
         mat( 774) = 0._r8
         mat( 775) = 0._r8
         mat( 779) = 0._r8
         mat( 781) = 0._r8
         mat( 782) = 0._r8
         mat( 784) = 0._r8
         mat( 794) = 0._r8
         mat( 841) = 0._r8
         mat( 858) = 0._r8
         mat( 859) = 0._r8
         mat( 870) = 0._r8
         mat( 877) = 0._r8
         mat( 881) = 0._r8
         mat( 884) = 0._r8
         mat( 909) = 0._r8
         mat( 923) = 0._r8
         mat( 931) = 0._r8
         mat( 933) = 0._r8
         mat( 934) = 0._r8
         mat( 936) = 0._r8
         mat( 942) = 0._r8
         mat( 945) = 0._r8
         mat( 952) = 0._r8
         mat( 955) = 0._r8
         mat( 958) = 0._r8
         mat( 959) = 0._r8
         mat( 960) = 0._r8
         mat( 963) = 0._r8
         mat( 964) = 0._r8
         mat( 973) = 0._r8
         mat( 975) = 0._r8
         mat( 976) = 0._r8
         mat( 979) = 0._r8
         mat( 980) = 0._r8
         mat( 981) = 0._r8
         mat( 982) = 0._r8
         mat( 983) = 0._r8
         mat( 984) = 0._r8
         mat( 986) = 0._r8
         mat( 987) = 0._r8
         mat( 990) = 0._r8
         mat( 991) = 0._r8
         mat(1026) = 0._r8
         mat(1043) = 0._r8
         mat(1055) = 0._r8
         mat(1072) = 0._r8
         mat(1091) = 0._r8
         mat(1093) = 0._r8
         mat(1094) = 0._r8
         mat(1095) = 0._r8
         mat(1096) = 0._r8
         mat(1107) = 0._r8
         mat(1108) = 0._r8
         mat(1109) = 0._r8
         mat(1112) = 0._r8
         mat(1113) = 0._r8
         mat( 1) = mat( 1) - dti
         mat( 2) = mat( 2) - dti
         mat( 3) = mat( 3) - dti
         mat( 4) = mat( 4) - dti
         mat( 5) = mat( 5) - dti
         mat( 7) = mat( 7) - dti
         mat( 8) = mat( 8) - dti
         mat( 10) = mat( 10) - dti
         mat( 11) = mat( 11) - dti
         mat( 12) = mat( 12) - dti
         mat( 13) = mat( 13) - dti
         mat( 14) = mat( 14) - dti
         mat( 15) = mat( 15) - dti
         mat( 16) = mat( 16) - dti
         mat( 17) = mat( 17) - dti
         mat( 18) = mat( 18) - dti
         mat( 19) = mat( 19) - dti
         mat( 22) = mat( 22) - dti
         mat( 25) = mat( 25) - dti
         mat( 28) = mat( 28) - dti
         mat( 31) = mat( 31) - dti
         mat( 34) = mat( 34) - dti
         mat( 38) = mat( 38) - dti
         mat( 43) = mat( 43) - dti
         mat( 45) = mat( 45) - dti
         mat( 50) = mat( 50) - dti
         mat( 53) = mat( 53) - dti
         mat( 56) = mat( 56) - dti
         mat( 61) = mat( 61) - dti
         mat( 63) = mat( 63) - dti
         mat( 67) = mat( 67) - dti
         mat( 71) = mat( 71) - dti
         mat( 75) = mat( 75) - dti
         mat( 79) = mat( 79) - dti
         mat( 83) = mat( 83) - dti
         mat( 88) = mat( 88) - dti
         mat( 92) = mat( 92) - dti
         mat( 98) = mat( 98) - dti
         mat( 103) = mat( 103) - dti
         mat( 110) = mat( 110) - dti
         mat( 115) = mat( 115) - dti
         mat( 120) = mat( 120) - dti
         mat( 124) = mat( 124) - dti
         mat( 131) = mat( 131) - dti
         mat( 134) = mat( 134) - dti
         mat( 140) = mat( 140) - dti
         mat( 147) = mat( 147) - dti
         mat( 153) = mat( 153) - dti
         mat( 159) = mat( 159) - dti
         mat( 163) = mat( 163) - dti
         mat( 167) = mat( 167) - dti
         mat( 173) = mat( 173) - dti
         mat( 179) = mat( 179) - dti
         mat( 184) = mat( 184) - dti
         mat( 191) = mat( 191) - dti
         mat( 199) = mat( 199) - dti
         mat( 206) = mat( 206) - dti
         mat( 212) = mat( 212) - dti
         mat( 217) = mat( 217) - dti
         mat( 223) = mat( 223) - dti
         mat( 230) = mat( 230) - dti
         mat( 235) = mat( 235) - dti
         mat( 243) = mat( 243) - dti
         mat( 251) = mat( 251) - dti
         mat( 259) = mat( 259) - dti
         mat( 267) = mat( 267) - dti
         mat( 272) = mat( 272) - dti
         mat( 276) = mat( 276) - dti
         mat( 280) = mat( 280) - dti
         mat( 289) = mat( 289) - dti
         mat( 297) = mat( 297) - dti
         mat( 308) = mat( 308) - dti
         mat( 319) = mat( 319) - dti
         mat( 333) = mat( 333) - dti
         mat( 341) = mat( 341) - dti
         mat( 348) = mat( 348) - dti
         mat( 360) = mat( 360) - dti
         mat( 370) = mat( 370) - dti
         mat( 379) = mat( 379) - dti
         mat( 395) = mat( 395) - dti
         mat( 406) = mat( 406) - dti
         mat( 412) = mat( 412) - dti
         mat( 420) = mat( 420) - dti
         mat( 427) = mat( 427) - dti
         mat( 436) = mat( 436) - dti
         mat( 448) = mat( 448) - dti
         mat( 462) = mat( 462) - dti
         mat( 472) = mat( 472) - dti
         mat( 485) = mat( 485) - dti
         mat( 499) = mat( 499) - dti
         mat( 512) = mat( 512) - dti
         mat( 518) = mat( 518) - dti
         mat( 529) = mat( 529) - dti
         mat( 538) = mat( 538) - dti
         mat( 551) = mat( 551) - dti
         mat( 565) = mat( 565) - dti
         mat( 584) = mat( 584) - dti
         mat( 604) = mat( 604) - dti
         mat( 621) = mat( 621) - dti
         mat( 646) = mat( 646) - dti
         mat( 678) = mat( 678) - dti
         mat( 696) = mat( 696) - dti
         mat( 733) = mat( 733) - dti
         mat( 751) = mat( 751) - dti
         mat( 788) = mat( 788) - dti
         mat( 836) = mat( 836) - dti
         mat( 897) = mat( 897) - dti
         mat( 920) = mat( 920) - dti
         mat( 940) = mat( 940) - dti
         mat( 972) = mat( 972) - dti
         mat( 988) = mat( 988) - dti
         mat(1078) = mat(1078) - dti
         mat(1098) = mat(1098) - dti
         mat(1117) = mat(1117) - dti
      end subroutine nlnmat_finit
      subroutine nlnmat( mat, y, rxt, lmat, dti )
      use chem_mods, only : gas_pcnst, rxntot, nzcnt
      implicit none
!----------------------------------------------
! ... dummy arguments
!----------------------------------------------
      real(r8), intent(in) :: dti
      real(r8), intent(in) :: lmat(nzcnt)
      real(r8), intent(in) :: y(gas_pcnst)
      real(r8), intent(in) :: rxt(rxntot)
      real(r8), intent(inout) :: mat(nzcnt)
      call nlnmat01( mat, y, rxt )
      call nlnmat02( mat, y, rxt )
      call nlnmat03( mat, y, rxt )
      call nlnmat04( mat, y, rxt )
      call nlnmat05( mat, y, rxt )
      call nlnmat_finit( mat, lmat, dti )
      end subroutine nlnmat
      end module mo_nln_matrix
